#ifndef __SEND_HELPER_H__
#define __SEND_HELPER_H__

#include <unordered_map>
#include <functional>
#include <string>


class SendHelper
{
private:
    /* data */
public:

    SendHelper(/* args */);
    ~SendHelper();

    void Init();

    bool CheckCmd(int cmd_id);
    void Process(int cmd_id, int& fd);
    void ListCmds();

    std::string Login(int cmd_id);
    std::string Logout(int cmd_id);
    std::string GetPlayerInfo(int cmd_id);
    std::string RequestEnterDefaultScene(int cmd_id);
    std::string RequestMove(int cmd_id);
    std::string RequestUseSkill(int cmd_id);

    std::string EnterScene(int cmd_id);
    std::string LeaveScene(int cmd_id);
    std::string StartMove(int cmd_id);
    std::string StopMove(int cmd_id);


public:
    std::unordered_map<int, std::function<std::string()>> cmd2func_;
    std::unordered_map<std::string, int> cmd2id_;
};



#endif  // __SEND_HELPER_H__